package com.higgins.eventtracking.client;

import java.util.Date;
import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.higgins.eventtracking.client.dto.AssetDTO;
import com.higgins.eventtracking.client.dto.FinanceGoalDTO;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("assettracking")
public interface AssetTrackingService extends RemoteService {
	List<AssetDTO> retrieveAssets() throws IllegalArgumentException;
	String addAsset(String amount, String account) throws IllegalArgumentException;
	String addAsset(String amount, String account, String accountRepayment, String monthlyRepayment, String monthlyInterest) throws IllegalArgumentException;
	String retrieveTotalAssetAmount() throws IllegalArgumentException;
	String retrieveForecastedEndOfNextQuarterTotalAssets(Boolean employed, Date now) throws IllegalArgumentException;
	String retrieveForecastedTotalAssets(Boolean employed, Date now, Date forecastDate) throws IllegalArgumentException;
//	String retrieveForecastedUnemployedEndOfNextQuarterTotalAssets(Date now) throws IllegalArgumentException;
	String retrieveEndOfNextQuarter(Date now) throws IllegalArgumentException;
	List<FinanceGoalDTO> retrieveGoals() throws IllegalArgumentException;
	Boolean insertGoals() throws IllegalArgumentException;
	String updateAsset(AssetDTO dto) throws IllegalArgumentException;	
	String deleteAsset(Long id) throws IllegalArgumentException;
}
